/*!
 * \file WindowEvent.h
 * \brief Contains the definition of WindowEvent
 * \author CHOUVENC Guillaume, DE CHOULOT Fabien, MATHIEU Fabien
 */

#ifndef WINDOWEVENT_H
#define WINDOWEVENT_H

#include "bga/system/Event.h"
#include "bga/window/Window.h"

/**
 * \namespace bga
 * \brief API namespace
 */
namespace bga
{


/*!
 * \brief Represents a Window Event
 *
 * This class represents a Window Event.
 * This event would be get by a WindowListener.
 */
class BOARD_HELL_ENGINE WindowEvent : public Event< bga::Window >
{
    public:
        enum Type
        {
            CLOSED,
            RESIZED,
            LOSTD_FOCUS,
            GAINED_FOCUS
        };

        /*!
         * \brief Contructor
         *
         * Default Contructor
         */
        WindowEvent();

        /*!
         * \brief Contructor
         * \param sender : Window which have sent the event
         *
         * Contructor with the sender
         */
        WindowEvent(const bga::Window &sender);

        /*!
         * \brief Destructor
         */
        virtual ~WindowEvent();
};
}

#endif // WINDOWEVENT_H

